package shejimoshi.mobanfangfamoshi;

// 抽象类
public abstract class Coffee {
    // 模板方法
    public final void prepareRecipe() {
        boilWater();
        brew();
        pourInCup();
        addCondiments();
    }

    // 抽象方法，由子类实现
    abstract void brew();

    // 钩子方法，可以被子类覆盖
    void addCondiments() {
        System.out.println("Adding condiments");
    }

    // 具体方法
    private void boilWater() {
        System.out.println("Boiling water");
    }

    private void pourInCup() {
        System.out.println("Pouring into cup");
    }
}



